// ml:run = $bin < input
#include <cstdio>
#include <algorithm>
#include <string>
#include <vector>

int const maxn = 100007;
int n, q, c;
int map[200][200];
int sum[200][200][20];
int px[maxn];
int py[maxn];
int s[maxn];

int main()
{
    std::scanf("%d", &n);
    std::scanf("%d", &q);
    std::scanf("%d", &c);

    for (int i = 0; i < n; i++) {
        std::scanf("%d", &px[i]);
        std::scanf("%d", &py[i]);
        std::scanf("%d", &s[i]);
        sum[px[i]][py[i]][0] += s[i];
    }
    for (int t = 0; t <= c; t++) {
        for (int i = 0; i <= 100; i++)
            for (int j = 0; j <= 100; j++) {
                if (i) sum[i][j][t] += sum[i - 1][j][t];
                if (j) sum[i][j][t] += sum[i][j - 1][t];
                if (i && j) sum[i][j][t] -= sum[i - 1][j - 1][t];
            }

        for (int i = 0; i < n; i++) {
            s[i] += 1;
            s[i] %= c + 1;
            sum[px[i]][py[i]][t + 1] += s[i];
        }
    }

    for (int i = 0; i < q; i++) {
        int t, x1, y1, x2, y2;
        std::scanf("%d", &t);
        std::scanf("%d", &x1);
        std::scanf("%d", &y1);
        std::scanf("%d", &x2);
        std::scanf("%d", &y2);
        t %= c + 1;
        auto ans = sum[x2][y2][t];
        if (x1) ans -= sum[x1 - 1][y2][t];
        if (y1) ans -= sum[x2][y1 - 1][t];
        if (x1 && y1) ans += sum[x1 - 1][y1 - 1][t];
        std::printf("%d\n", ans);
    }
}

